package redis_modules

import (
	"fmt"
	"hft/global"
	"log"
)

// redis操作项目

// ip黑名单列表
const (
	black_list = "OC_BLACK_LIST"
)

type IpCache struct{}

// 是否进入黑名单
func (*IpCache) IsInBlackIP(ip string) bool {
	res, err := global.OC_REDIS.SIsMember(black_list, ip).Result()
	if err != nil {
		log.Fatal(err)
		return true
	}
	if res {
		return true
	}
	return false
}

// 加入黑名单
func (*IpCache) AddIp(ip string) error {

	code, err := global.OC_REDIS.SAdd(black_list, ip).Result()
	fmt.Println(code)
	if err != nil {
		return err
	}

	return nil
}

// 移除黑名单
func (*IpCache) DeleteIp(ip string) error {
	code, err := global.OC_REDIS.SRem(black_list, ip).Result()
	fmt.Println(code)
	if err != nil {
		return err
	}

	return nil
}

// 获取黑名单列表
func (*IpCache) IpList() ([]string, error) {
	list, err := global.OC_REDIS.SMembers(black_list).Result()
	if err != nil {
		return nil, err
	}
	return list, nil
}

var IpCacheDB = new(IpCache)
